package com.xiaoshuidi.cloud.module.bpm.mq.message;

import lombok.Data;
import org.springframework.cloud.bus.event.RemoteApplicationEvent;

import javax.validation.constraints.NotNull;

/**
 * 流程实例的结果发生变化的 Event
 * 定位：由于额外增加了 {@link BpmProcessInstanceExtDO#getResult()} 结果，所以增加该事件
 *
 * @author
 */
@SuppressWarnings("ALL")
@Data
public class BpmProcessInstanceResultEvent extends RemoteApplicationEvent {

    /**
     * 流程实例的编号
     */
    @NotNull(message = "流程实例的编号不能为空")
    private String id;
    /**
     * 流程实例的 key
     */
    @NotNull(message = "流程实例的 key W不能为空")
    private String processDefinitionKey;
    /**
     * 流程类型
     */
    private String processDefinitionCategory;
    /**
     * 流程实例的结果
     */
    @NotNull(message = "流程实例的结果不能为空")
    private Integer result;
    /**
     * 流程实例对应的业务标识
     * 例如说，请假
     */
    private String businessKey;
    /**
     * 业务类型
     * {@link com.xiaoshuidi.cloud.module.bpm.enums.BpmBusinessTypeEnum}
     */
    private String businessType;

    private Long tenantId;

    public BpmProcessInstanceResultEvent() {

    }

    public BpmProcessInstanceResultEvent(Object source, String originService, String destinationService) {
        super(source, originService, DEFAULT_DESTINATION_FACTORY.getDestination(destinationService));
    }
}
